package org.iut.gepromis.domain;

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.entity.RooEntity;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.tostring.RooToString;

@Entity
@RooJavaBean
@RooToString
@RooEntity
public class Anexo {

	@NotNull
	private String codigoAnexo;

	@NotNull
	private String nombreAnexo;

	@NotNull
	private String descripcionAnexo;

	@Temporal(TemporalType.TIMESTAMP)
	@DateTimeFormat(style = "S-")
	private Date fechaRegistroAnexo;

	@ManyToOne(targetEntity = TipoAnexo.class)
	@JoinColumn
	private TipoAnexo tipoDeAnexo;

	@ManyToOne(targetEntity = Proyecto.class)
	@JoinColumn
	private Proyecto proyectoAsociado;

	@ManyToOne(targetEntity = FasesProyecto.class)
	@JoinColumn
	private FasesProyecto faseAsociada;

	//
	// @Lob
	// @Basic(fetch = FetchType.LAZY)
	// private byte[] archivoAdjunto;

	@NotNull
	@Lob
	@Basic(fetch = FetchType.LAZY)
	private byte[] contenidoAnexo;

}
